#include <iostream>

using namespace std;

/*
 * 继承 语法    class 子类(派生类): 继承方式 父类(基类)
 *  继承方式    父类中private属性都不能访问
 *             public       父类中public和protected属性在子类中依旧是public和protected
 *             protected    父类中public和protected属性在子类中是protected
 *             private      父类中public和protected属性在子类中是private
 *
 *  父类构造-> 子类构造-> 子类析构-> 父类析构
 */

class Base{
public:
    int m_a;
protected:
    int m_b;
private:
    int m_c;
};

class Son: public Base{
public:
    int m_d;
};

void test()
{
    Son s;
    // 父类中所有非静态成员属性都会被子类继承下去，私有成员属性被编译器隐藏，所以访问不到
    cout << "s的大小= " << sizeof(s) << endl;
}

int main() {

    test();

    return 0;
}
